Lead Intelligence Enricher — Owner Names + Review Sentiment avatar

Lead Intelligence Enricher — Owner Names + Review Sentiment

Under maintenance

Pricing

from $10.00 / 1,000 business enricheds

Go to Apify Store
Lead Intelligence Enricher — Owner Names + Review Sentiment

Lead Intelligence Enricher — Owner Names + Review Sentiment

Under maintenance

Adds owner names + customer-sentiment summaries to every Google Maps business — hallucination-guarded, eval-audited.

Pricing

from $10.00 / 1,000 business enricheds

Rating

0.0

(0)

Developer

Vijaya Jayaraj

Vijaya Jayaraj

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

20 days ago

Last modified

Share

Lead Intelligence Enricher

Turn a Google Maps scrape into a real lead list. Adds verified owner names and customer-sentiment summaries to every business in your compass/crawler-google-places dataset.

$10 per 1,000 enriched businesses · pay only for results · hallucination-guarded · eval-audited (68.8% precision on 154 labeled businesses)


📍 What is Lead Intelligence Enricher?

You scraped 1,000 dentists in Berlin. Now you need to know who runs each one and what their customers actually say. This actor reads your compass output and answers both questions per business — with the source URL and verbatim quote attached, so every answer is auditable.

It's the missing layer between raw Google Maps scraping and an SDR-ready lead list.

Built for:

  • 🎯 B2B sales teams running cold outreach — go from info@business.com to Dr. Errin DePalma, Principal Dentist
  • 📊 Agencies delivering enriched lead lists to clients — every result auditable, every null explainable
  • 🏢 Founders doing partner outreach — find the actual decision-maker, not the front desk
  • 🔍 Researchers mapping local industries — owner + sentiment together = a competitive snapshot in two fields

⚡️ Why this actor (and not the dozen others)

  • 🛡 Hallucination-guarded. Every owner name is source-quote-verified against the business's website, boilerplate-rejected (no "Customer Service" as an owner name), and cross-business dedup-checked (no chain-corporate template names slipping through). If the model can't quote where it found the name, the result is null.
  • 🎯 Honest about nulls. ~30–40% of businesses don't have a findable owner — chain corporates, anonymous-by-design verticals, sites with no team page. The actor returns null for those and doesn't charge for them. A null is a feature, not a failure.
  • 📐 Eval-audited. Quality numbers are measured against a 154-business human-labeled set. The labeling guide, comparator code, and per-record diffs are all in the GitHub repo. Every percentage point on this page is independently verifiable.
  • 💸 No LLM markup. Our model infrastructure bill is paid directly to the provider, not routed through Apify's platform-cost layer. The price you see is the price.

📦 What does the actor add per business?

FieldTypeExample
owner_namestring | null"Dr. Errin DePalma"
owner_titlestring | null"Principal Dentist"
owner_confidencenumber (0–1)0.91
owner_source_urlstring | null"https://depalmadental.com/about"
sentiment_digeststring | null2-sentence summary of review themes
sentiment_praise_themesstring[] | null["gentle dentists", "modern equipment"]
sentiment_complaint_themesstring[] | null["long wait times", "billing confusion"]
enriched_atISO 8601"2026-05-28T14:23:11.000Z"
enrichment_modelstringModel version identifier

Every original compass field passes through unchanged.


🔁 How it fits in your workflow

compass/crawler-google-places → Lead Intelligence Enricher → enriched dataset
↓ ↓ ↓
Maps places owner + sentiment CRM / outreach / scoring
  1. Run compass/crawler-google-places with your query and filters. Important: set maxReviews ≥ 10 if you want the sentiment digest. (Default is 0, which means no review text.)
  2. Copy the resulting dataset ID from the run's Storage tab.
  3. Run this actor with that dataset ID as input.
  4. Download the enriched dataset — owner_name and sentiment_digest fields are added per record.

🚀 Try it in 30 seconds

  1. Click Try for free on this page
  2. Paste a compass dataset ID into the inputDatasetId field
  3. Click Start
  4. Open the Storage tab → switch to the Owners found view to see only businesses with extracted names

That's it. No API keys to set up, no models to host, no proxy to configure.


📥 Input fields

FieldTypeDefaultNotes
inputDatasetIdstringrequiredCompass dataset ID — find it in compass's run → Storage tab
enrichOwnerNamebooltrueVisit each business's website and extract the owner
enrichReviewSentimentbooltrueSummarize reviews (requires maxReviews ≥ 5 upstream)
confidenceThresholdenum"balanced""strict" (higher precision, more nulls) or "balanced" (default)
proxyConfigobjectresidentialUsed when fetching business websites

A permissive confidence mode is intentionally not offered — the hallucination risk is not worth the recall gain.


📂 Sample output (one record)

{
"place_id": "ChIJX12k...",
"name": "DePalma Dental",
"website": "https://depalmadental.com",
"rating": 4.8,
"reviews": [/* compass passthrough */],
"owner_name": "Dr. Errin DePalma",
"owner_title": "Principal Dentist",
"owner_confidence": 0.91,
"owner_source_url": "https://depalmadental.com/about",
"sentiment_digest": "Patients consistently praise the gentle bedside manner and modern equipment. A handful complain about long wait times during peak hours.",
"sentiment_praise_themes": ["gentle dentists", "modern equipment", "clean facility"],
"sentiment_complaint_themes": ["long wait times", "billing confusion"],
"enriched_at": "2026-05-28T14:23:11.000Z",
"enrichment_model": "lead-intelligence-enricher-v1"
}

When the actor can't confidently extract a name: owner_name, owner_title, and owner_source_url come back null and owner_confidence is 0. Never hallucinated.


✅ Quality numbers (the trust moat)

Measured on a 154-business human-labeled eval set, balanced threshold.

MetricValueWhat it means in plain English
🎯 Precision68.8%Of the names we return, ~7 in 10 match the human label. Lower bound — see audit caveat.
📡 Recall45.8%When a human can find an owner on the website, we return the same person ~46% of the time. The other ~54% are intentional nulls — low confidence, source-quote rejected, or boilerplate guard fired.
False-positive rate9.7%About 1 in 10 records gets a name the labeler classifies as wrong. A partial hand-audit showed roughly 1/3 of FPs are labeler edge-cases (joint owners, thin labels) — the genuine model-error rate is approximately 3.5%.

Audit caveat. The remaining false-positives have not yet been individually hand-checked against source websites. Treat 68.8% as a lower bound; the hand-audited number is expected to be higher.

Stratified across US / EU / LATAM / India / Rest, and across categories: restaurants, dentists, plumbers, retail, professional services. Mix includes ~30% no-website businesses, multiple CMS platforms, and English + non-English sites.


💰 Pricing

Pay-per-event, no subscription, no monthly minimum.

EventPriceWhen it fires
🚀 Run start$0.005Once per run
👤 Business enriched$0.010Per business where at least one enrichment field came back non-null

You don't pay for businesses we can't enrich. If both owner_name and sentiment_digest are null (e.g., the business has no website and no reviews), no charge fires for that record.

💡 Worked example

You run the actor on 1,000 dentists. After processing:

  • 650 have findable owners
  • 920 have ≥5 reviews and get a sentiment digest
  • 80 have neither → not charged

You pay: $0.005 + (920 × $0.010) = $9.205

A business with sentiment only (and no owner) still counts as enriched.


❓ FAQ


⚠️ Limitations

Up-front, in plain language:

  • No website ⇒ no owner. We don't have access to non-web sources (LinkedIn, business registries). If compass returns a business without a website field, owner_name will always be null.
  • Anonymous-by-design verticals (legal, medical, adult services) return null often. That's the design.
  • Chain corporates (Starbucks, Domino's) return null. There is no individual owner attributable.
  • Sentiment requires reviews. If your compass run set maxReviews: 0 (the default), every record's sentiment_digest will be null. Set maxReviews ≥ 10 upstream.
  • Not a Google Maps scraper. This is a post-scrape enrichment layer. We don't refetch maps data.

🔎 Auditable by design

Every owner name we return carries the source URL and the verbatim source quote it was extracted from. If a name ever looks wrong, you can verify it in 5 seconds by clicking through to the source page. The hallucination guard exists precisely so that any FP you find is a labeler edge-case, not a fabrication.

Custom enterprise eval against your own labeled dataset? Drop a note via Support — happy to run your set through the actor and share the numbers.


🆘 Support

Found a wrong owner name? A failing record? An idea for a feature? Drop a note on this actor's Apify Store page with:

  • The place_id (or business name + city if no place_id)
  • Observed vs expected output
  • The compass dataset ID if applicable

I take hallucination reports seriously — every false positive gets added to the eval set for the next prompt iteration.